<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>glGetAttribLocation - OpenGL ES 3 Reference Pages</title>
    <link rel="stylesheet" type="text/css" href="opengl-man.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
    <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                MathML: {
                    extensions: ["content-mathml.js"]
                },
                tex2jax: {
                    inlineMath: [['$','$'], ['\\(','\\)']]
                }
            });
        </script>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"/>
  </head>
  <body>
    <header/>
    <div class="refentry" id="glGetAttribLocation">
      <div class="titlepage"/>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>glGetAttribLocation — Returns the location of an attribute variable</p>
      </div>
      <div class="refsynopsisdiv">
        <h2>C Specification</h2>
        <div class="funcsynopsis">
          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
            <tr>
              <td>
                <code class="funcdef">GLint <strong class="fsfunc">glGetAttribLocation</strong>(</code>
              </td>
              <td>GLuint <var class="pdparam">program</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>const GLchar *<var class="pdparam">name</var><code>)</code>;</td>
            </tr>
          </table>
          <div class="funcprototype-spacer"> </div>
        </div>
      </div>
      <div class="refsect1" id="parameters">
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>program</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Specifies the program object to be
            queried.</p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>name</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>Points to a null terminated string containing
            the name of the attribute variable whose location is
            to be queried.</p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" id="description">
        <h2>Description</h2>
        <p><code class="function">glGetAttribLocation</code> queries the
    previously linked program object specified by
    <em class="parameter"><code>program</code></em> for the attribute variable
    specified by <em class="parameter"><code>name</code></em> and returns the index
    of the generic vertex attribute that is bound to that attribute
    variable. If <em class="parameter"><code>name</code></em> is a matrix attribute
    variable, the index of the first column of the matrix is
    returned. If the named attribute variable is not an active
    attribute in the specified program object or if
    <em class="parameter"><code>name</code></em> starts with the reserved prefix
    "gl_", a value of -1 is returned.</p>
        <p>The association between an attribute variable name and a
    generic attribute index can be specified at any time by calling
    <a class="citerefentry" href="glBindAttribLocation.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindAttribLocation</span></span></a>.
    Attribute bindings do not go into effect until
    <a class="citerefentry" href="glLinkProgram.xhtml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>
    is called. After a program object has been linked successfully,
    the index values for attribute variables remain fixed until the
    next link command occurs. The attribute values can only be
    queried after a link if the link was successful.
    <code class="function">glGetAttribLocation</code> returns the binding
    that actually went into effect the last time
    <a class="citerefentry" href="glLinkProgram.xhtml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>
    was called for the specified program object. Attribute bindings
    that have been specified since the last link operation are not
    returned by <code class="function">glGetAttribLocation</code>.</p>
      </div>
      <div class="refsect1" id="errors">
        <h2>Errors</h2>
        <p><code class="constant">GL_INVALID_OPERATION</code> is generated if
    <em class="parameter"><code>program</code></em> is not a value generated by
    OpenGL.</p>
        <p><code class="constant">GL_INVALID_OPERATION</code> is generated if
    <em class="parameter"><code>program</code></em> is not a program object.</p>
        <p><code class="constant">GL_INVALID_OPERATION</code> is generated if
    <em class="parameter"><code>program</code></em> has not been successfully
    linked.</p>
      </div>
      <div class="refsect1" id="associatedgets">
        <h2>Associated Gets</h2>
        <p><a class="citerefentry" href="glGetActiveAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">glGetActiveAttrib</span></span></a>
    with argument <em class="parameter"><code>program</code></em> and the index of an
    active attribute</p>
        <p>
          <a class="citerefentry" href="glIsProgram.xhtml">
            <span class="citerefentry">
              <span class="refentrytitle">glIsProgram</span>
            </span>
          </a>
        </p>
      </div>
      <div class="refsect1" id="versions">
        <h2>API Version Support</h2>
        <div class="informaltable">
          <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
            <colgroup>
              <col style="text-align: left; "/>
              <col style="text-align: center; " class="firstvers"/>
              <col style="text-align: center; " class="lastvers"/>
            </colgroup>
            <thead>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; ">
                 
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; " colspan="2">
                <span class="bold"><strong>OpenGL ES API Version</strong></span>
            </th>
              </tr>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>Function Name</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>2.0</strong></span>
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.0</strong></span>
            </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td style="text-align: left; border-right: 2px solid ; ">
                  <code class="function">glGetAttribLocation</code>
                </td>
                <td style="text-align: center; border-right: 2px solid ; ">✔</td>
                <td style="text-align: center; ">✔</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="refsect1" id="seealso">
        <h2>See Also</h2>
        <p><a class="citerefentry" href="glBindAttribLocation.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindAttribLocation</span></span></a>,
    <a class="citerefentry" href="glIsProgram.xhtml"><span class="citerefentry"><span class="refentrytitle">glIsProgram</span></span></a>,
    <a class="citerefentry" href="glLinkProgram.xhtml"><span class="citerefentry"><span class="refentrytitle">glLinkProgram</span></span></a>,
    <a class="citerefentry" href="glVertexAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">glVertexAttrib</span></span></a>,
    <a class="citerefentry" href="glVertexAttribPointer.xhtml"><span class="citerefentry"><span class="refentrytitle">glVertexAttribPointer</span></span></a></p>
      </div>
      <div class="refsect1" id="Copyright">
        <h2>Copyright</h2>
        <p>
            Copyright <span class="trademark"/>© 2003-2005 3Dlabs Inc. Ltd. 
            This material may be distributed subject to the terms and conditions set forth in 
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="link" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p>
      </div>
    </div>
    <footer/>
  </body>
</html>
